﻿using System;
namespace Kis.Xroad.Eu {
    
    
    [System.SerializableAttribute()]
    public partial class XsdMinOccursMaxOccursBuiltinTypes {
        
        private string @__stringMin0Maz1NonNil;
        
        private string @__stringMin0Maz1Nil;
        
        private string @__stringMin1Maz1NonNil;
        
        private string @__stringMin1Maz1Nil;
        
        private System.UInt16? @__min0Maz1NonNil;
        
        private System.UInt16? @__min0Maz1Nil;
        
        private ushort @__min1Maz1NonNil;
        
        private System.UInt16? @__min1Maz1Nil;
        
        public XsdMinOccursMaxOccursBuiltinTypes() {
        }
        
        /// <summary>
        /// All parameters
        /// </summary>
        public XsdMinOccursMaxOccursBuiltinTypes(string @stringMin0Maz1NonNil, string @stringMin0Maz1Nil, string @stringMin1Maz1NonNil, string @stringMin1Maz1Nil, System.UInt16? @min0Maz1NonNil, System.UInt16? @min0Maz1Nil, ushort @min1Maz1NonNil, System.UInt16? @min1Maz1Nil) {
            this.@__stringMin0Maz1NonNil = @stringMin0Maz1NonNil;
            this.@__stringMin0Maz1Nil = @stringMin0Maz1Nil;
            this.@__stringMin1Maz1NonNil = @stringMin1Maz1NonNil;
            this.@__stringMin1Maz1Nil = @stringMin1Maz1Nil;
            this.@__min0Maz1NonNil = @min0Maz1NonNil;
            this.@__min0Maz1Nil = @min0Maz1Nil;
            this.@__min1Maz1NonNil = @min1Maz1NonNil;
            this.@__min1Maz1Nil = @min1Maz1Nil;
        }
        
        /// <summary>
        /// Required parameters
        /// </summary>
        public XsdMinOccursMaxOccursBuiltinTypes(string @stringMin1Maz1NonNil, ushort @min1Maz1NonNil) {
            this.@__stringMin1Maz1NonNil = @stringMin1Maz1NonNil;
            this.@__min1Maz1NonNil = @min1Maz1NonNil;
        }
        
        /// <summary>
        /// Copy Constructor
        /// </summary>
        protected XsdMinOccursMaxOccursBuiltinTypes(XsdMinOccursMaxOccursBuiltinTypes @xsdMinOccursMaxOccursBuiltinTypes) {
            this.@__stringMin0Maz1NonNil = @xsdMinOccursMaxOccursBuiltinTypes.StringMin0Maz1NonNil;
            this.@__stringMin0Maz1Nil = @xsdMinOccursMaxOccursBuiltinTypes.StringMin0Maz1Nil;
            this.@__stringMin1Maz1NonNil = @xsdMinOccursMaxOccursBuiltinTypes.StringMin1Maz1NonNil;
            this.@__stringMin1Maz1Nil = @xsdMinOccursMaxOccursBuiltinTypes.StringMin1Maz1Nil;
            this.@__min0Maz1NonNil = @xsdMinOccursMaxOccursBuiltinTypes.Min0Maz1NonNil;
            this.@__min0Maz1Nil = @xsdMinOccursMaxOccursBuiltinTypes.Min0Maz1Nil;
            this.@__min1Maz1NonNil = @xsdMinOccursMaxOccursBuiltinTypes.Min1Maz1NonNil;
            this.@__min1Maz1Nil = @xsdMinOccursMaxOccursBuiltinTypes.Min1Maz1Nil;
        }
        
        public virtual string StringMin0Maz1NonNil {
            get {
                return this.@__stringMin0Maz1NonNil;
            }
            set {
                this.@__stringMin0Maz1NonNil = value;
            }
        }
        
        public virtual string StringMin0Maz1Nil {
            get {
                return this.@__stringMin0Maz1Nil;
            }
            set {
                this.@__stringMin0Maz1Nil = value;
            }
        }
        
        public virtual string StringMin1Maz1NonNil {
            get {
                return this.@__stringMin1Maz1NonNil;
            }
            set {
                this.@__stringMin1Maz1NonNil = value;
            }
        }
        
        public virtual string StringMin1Maz1Nil {
            get {
                return this.@__stringMin1Maz1Nil;
            }
            set {
                this.@__stringMin1Maz1Nil = value;
            }
        }
        
        public virtual System.UInt16? Min0Maz1NonNil {
            get {
                return this.@__min0Maz1NonNil;
            }
            set {
                this.@__min0Maz1NonNil = value;
            }
        }
        
        public virtual System.UInt16? Min0Maz1Nil {
            get {
                return this.@__min0Maz1Nil;
            }
            set {
                this.@__min0Maz1Nil = value;
            }
        }
        
        public virtual ushort Min1Maz1NonNil {
            get {
                return this.@__min1Maz1NonNil;
            }
            set {
                this.@__min1Maz1NonNil = value;
            }
        }
        
        public virtual System.UInt16? Min1Maz1Nil {
            get {
                return this.@__min1Maz1Nil;
            }
            set {
                this.@__min1Maz1Nil = value;
            }
        }
    }
}
